/*
 * Comparardor.h
 *
 * Compara mediante el primari key los datos
 *
 *  Created on: 15/10/2009
 *      Author: andres
 */

#ifndef COMPARARDOR_H_
#define COMPARARDOR_H_

#include "DatoIndice.h" 
#include <stdlib.h>
//#include "../../classes.inc.h"
//#include "../Indice.inc.h"
#include <string>

class Comparardor
{
public:
	/**
	  * Constructor
	  *
	  * contructor del comparador
	  *
	  * @author andres
	  *
	  * @param PrimaryKey* Primary key que se usa para identificar los datos
	  *
	  */
	Comparardor(PrimaryKey* primaryKey);

	/**
	  * Comparar
	  *
	  * compara las claves primarias de dos datos para verificar que se igual
	  *
	  * @author andres
	  *
	  * @param dato Dato contra el que se compara
	  *
	  * @param datoBuscado Dato que compara
	  *
	  * @return int Devuelve un numero mayor que 0 si la clave de dato es mayor que 0
	  * 	la de dato buscado. Devuelve un 0 si ambas claves son iguales. En el
	  * 	otro caso devuelve un numero menor que 0
	  *
	  */
	int Comparar(char* dato, char* datoBuscado);

	/**
	  * Comparar
	  *
	  * compara la clave del dato con la clave buscada
	  *
	  * @author andres
	  *
	  * @param dato Dato contra el que se compara
	  *
	  * @param claveBuscada Clave que busca
	  *
	  * @return int Devuelve un numero mayor que 0 si la clave de dato es mayor que 0
	  * 	la clave buscada. Devuelve un 0 si ambas claves son iguales. En el
	  * 	otro caso devuelve un numero menor que 0
	  *
	  */
	int Comparar(char* dato, std::string claveBuscada);

	virtual ~Comparardor();

private:
	PrimaryKey* primaryKey;
	DatoIndice* datoInfo;
};

#endif /* COMPARARDOR_H_ */
